/**
 * Interface for the playerControl
 * 
 * @author Thomas
 * 
 */
package control;

import java.awt.Image;
import java.util.ArrayList;

import javax.swing.ImageIcon;

import model.Player;


public interface IPlayerControl 
{
	public void createPlayer(String name, int startField, boolean human, ImageIcon image);
	
	public int getStartMoney();
	
	public void setStartMoney(int desiredStartMoney);
	
	public int getNumberOfPlayers();
	
	public ArrayList<Player> getPlayerList();
	
	public boolean hasMortgage(int id, int playerNumber);
	
	public void removePlayer(int player);
	
	public void move(int player, int destination, boolean directField);
	
	public int getJailStatus(int player);
	
	public void setJailStatus(int player, int jailStatus);
	
	public String getPlayerName(int player);
	
	public int getPlayerBudget(int player);
	
	public ImageIcon getPlayerImage(int player);
	
	public void setAliveStatus(int index, boolean status);
	
	public boolean getAliveStatus(int player);
	
	public int getCurrentField(int player);
	
	public int getActivePlayer();
	
	public int getPlayerNumber(String playerName);
	
	public void setActivePlayer(int player);
	
	public void addMoney(int player, int money);
	
	public void subtractMoney(int player, int money);
	
	public void addMortgage(int player, int street);
	
	public void removeMortgage(int player, int street);
	
	public boolean isHuman(int player);
	
	public void setHuman(int player, boolean human);
	
	public int getRichestPlayer();
	
	public void addJailFreeCard(int player);
	
	public void removeJailFreeCard(int player);
	
	public int getJailFreeCard(int player);
	
	public int getX(int player);
	
	public int getY(int player);
	
	public void setX(int player, int x);
	
	public void setY(int player, int y);	
	
	public boolean hasRolled(int player);
	
	public void setRolled(int player, boolean status);
}
